
phase4：     文件格式 elf64-x86-64


Disassembly of section .init:

0000000000400730 <_init>:
  400730:	48 83 ec 08          	sub    $0x8,%rsp
  400734:	48 8b 05 bd 18 20 00 	mov    0x2018bd(%rip),%rax        # 601ff8 <__gmon_start__>
  40073b:	48 85 c0             	test   %rax,%rax
  40073e:	74 05                	je     400745 <_init+0x15>
  400740:	e8 bb 00 00 00       	call   400800 <__gmon_start__@plt>
  400745:	48 83 c4 08          	add    $0x8,%rsp
  400749:	c3                   	ret

Disassembly of section .plt:

0000000000400750 <.plt>:
  400750:	ff 35 b2 18 20 00    	push   0x2018b2(%rip)        # 602008 <_GLOBAL_OFFSET_TABLE_+0x8>
  400756:	ff 25 b4 18 20 00    	jmp    *0x2018b4(%rip)        # 602010 <_GLOBAL_OFFSET_TABLE_+0x10>
  40075c:	0f 1f 40 00          	nopl   0x0(%rax)

0000000000400760 <puts@plt>:
  400760:	ff 25 b2 18 20 00    	jmp    *0x2018b2(%rip)        # 602018 <puts@GLIBC_2.2.5>
  400766:	68 00 00 00 00       	push   $0x0
  40076b:	e9 e0 ff ff ff       	jmp    400750 <.plt>

0000000000400770 <ferror@plt>:
  400770:	ff 25 aa 18 20 00    	jmp    *0x2018aa(%rip)        # 602020 <ferror@GLIBC_2.2.5>
  400776:	68 01 00 00 00       	push   $0x1
  40077b:	e9 d0 ff ff ff       	jmp    400750 <.plt>

0000000000400780 <fread@plt>:
  400780:	ff 25 a2 18 20 00    	jmp    *0x2018a2(%rip)        # 602028 <fread@GLIBC_2.2.5>
  400786:	68 02 00 00 00       	push   $0x2
  40078b:	e9 c0 ff ff ff       	jmp    400750 <.plt>

0000000000400790 <getpid@plt>:
  400790:	ff 25 9a 18 20 00    	jmp    *0x20189a(%rip)        # 602030 <getpid@GLIBC_2.2.5>
  400796:	68 03 00 00 00       	push   $0x3
  40079b:	e9 b0 ff ff ff       	jmp    400750 <.plt>

00000000004007a0 <fclose@plt>:
  4007a0:	ff 25 92 18 20 00    	jmp    *0x201892(%rip)        # 602038 <fclose@GLIBC_2.2.5>
  4007a6:	68 04 00 00 00       	push   $0x4
  4007ab:	e9 a0 ff ff ff       	jmp    400750 <.plt>

00000000004007b0 <mmap@plt>:
  4007b0:	ff 25 8a 18 20 00    	jmp    *0x20188a(%rip)        # 602040 <mmap@GLIBC_2.2.5>
  4007b6:	68 05 00 00 00       	push   $0x5
  4007bb:	e9 90 ff ff ff       	jmp    400750 <.plt>

00000000004007c0 <printf@plt>:
  4007c0:	ff 25 82 18 20 00    	jmp    *0x201882(%rip)        # 602048 <printf@GLIBC_2.2.5>
  4007c6:	68 06 00 00 00       	push   $0x6
  4007cb:	e9 80 ff ff ff       	jmp    400750 <.plt>

00000000004007d0 <memset@plt>:
  4007d0:	ff 25 7a 18 20 00    	jmp    *0x20187a(%rip)        # 602050 <memset@GLIBC_2.2.5>
  4007d6:	68 07 00 00 00       	push   $0x7
  4007db:	e9 70 ff ff ff       	jmp    400750 <.plt>

00000000004007e0 <__libc_start_main@plt>:
  4007e0:	ff 25 72 18 20 00    	jmp    *0x201872(%rip)        # 602058 <__libc_start_main@GLIBC_2.2.5>
  4007e6:	68 08 00 00 00       	push   $0x8
  4007eb:	e9 60 ff ff ff       	jmp    400750 <.plt>

00000000004007f0 <srand@plt>:
  4007f0:	ff 25 6a 18 20 00    	jmp    *0x20186a(%rip)        # 602060 <srand@GLIBC_2.2.5>
  4007f6:	68 09 00 00 00       	push   $0x9
  4007fb:	e9 50 ff ff ff       	jmp    400750 <.plt>

0000000000400800 <__gmon_start__@plt>:
  400800:	ff 25 62 18 20 00    	jmp    *0x201862(%rip)        # 602068 <__gmon_start__>
  400806:	68 0a 00 00 00       	push   $0xa
  40080b:	e9 40 ff ff ff       	jmp    400750 <.plt>

0000000000400810 <munmap@plt>:
  400810:	ff 25 5a 18 20 00    	jmp    *0x20185a(%rip)        # 602070 <munmap@GLIBC_2.2.5>
  400816:	68 0b 00 00 00       	push   $0xb
  40081b:	e9 30 ff ff ff       	jmp    400750 <.plt>

0000000000400820 <fopen@plt>:
  400820:	ff 25 52 18 20 00    	jmp    *0x201852(%rip)        # 602078 <fopen@GLIBC_2.2.5>
  400826:	68 0c 00 00 00       	push   $0xc
  40082b:	e9 20 ff ff ff       	jmp    400750 <.plt>

0000000000400830 <fwrite@plt>:
  400830:	ff 25 4a 18 20 00    	jmp    *0x20184a(%rip)        # 602080 <fwrite@GLIBC_2.2.5>
  400836:	68 0d 00 00 00       	push   $0xd
  40083b:	e9 10 ff ff ff       	jmp    400750 <.plt>

0000000000400840 <rand@plt>:
  400840:	ff 25 42 18 20 00    	jmp    *0x201842(%rip)        # 602088 <rand@GLIBC_2.2.5>
  400846:	68 0e 00 00 00       	push   $0xe
  40084b:	e9 00 ff ff ff       	jmp    400750 <.plt>

Disassembly of section .text:

0000000000400850 <_start>:
  400850:	31 ed                	xor    %ebp,%ebp
  400852:	49 89 d1             	mov    %rdx,%r9
  400855:	5e                   	pop    %rsi
  400856:	48 89 e2             	mov    %rsp,%rdx
  400859:	48 83 e4 f0          	and    $0xfffffffffffffff0,%rsp
  40085d:	50                   	push   %rax
  40085e:	54                   	push   %rsp
  40085f:	49 c7 c0 a0 0f 40 00 	mov    $0x400fa0,%r8
  400866:	48 c7 c1 30 0f 40 00 	mov    $0x400f30,%rcx
  40086d:	48 c7 c7 18 0d 40 00 	mov    $0x400d18,%rdi
  400874:	e8 67 ff ff ff       	call   4007e0 <__libc_start_main@plt>
  400879:	f4                   	hlt
  40087a:	66 0f 1f 44 00 00    	nopw   0x0(%rax,%rax,1)

0000000000400880 <deregister_tm_clones>:
  400880:	b8 27 21 60 00       	mov    $0x602127,%eax
  400885:	55                   	push   %rbp
  400886:	48 2d 20 21 60 00    	sub    $0x602120,%rax
  40088c:	48 83 f8 0e          	cmp    $0xe,%rax
  400890:	48 89 e5             	mov    %rsp,%rbp
  400893:	77 02                	ja     400897 <deregister_tm_clones+0x17>
  400895:	5d                   	pop    %rbp
  400896:	c3                   	ret
  400897:	b8 00 00 00 00       	mov    $0x0,%eax
  40089c:	48 85 c0             	test   %rax,%rax
  40089f:	74 f4                	je     400895 <deregister_tm_clones+0x15>
  4008a1:	5d                   	pop    %rbp
  4008a2:	bf 20 21 60 00       	mov    $0x602120,%edi
  4008a7:	ff e0                	jmp    *%rax
  4008a9:	0f 1f 80 00 00 00 00 	nopl   0x0(%rax)

00000000004008b0 <register_tm_clones>:
  4008b0:	b8 20 21 60 00       	mov    $0x602120,%eax
  4008b5:	55                   	push   %rbp
  4008b6:	48 2d 20 21 60 00    	sub    $0x602120,%rax
  4008bc:	48 c1 f8 03          	sar    $0x3,%rax
  4008c0:	48 89 e5             	mov    %rsp,%rbp
  4008c3:	48 89 c2             	mov    %rax,%rdx
  4008c6:	48 c1 ea 3f          	shr    $0x3f,%rdx
  4008ca:	48 01 d0             	add    %rdx,%rax
  4008cd:	48 d1 f8             	sar    $1,%rax
  4008d0:	75 02                	jne    4008d4 <register_tm_clones+0x24>
  4008d2:	5d                   	pop    %rbp
  4008d3:	c3                   	ret
  4008d4:	ba 00 00 00 00       	mov    $0x0,%edx
  4008d9:	48 85 d2             	test   %rdx,%rdx
  4008dc:	74 f4                	je     4008d2 <register_tm_clones+0x22>
  4008de:	5d                   	pop    %rbp
  4008df:	48 89 c6             	mov    %rax,%rsi
  4008e2:	bf 20 21 60 00       	mov    $0x602120,%edi
  4008e7:	ff e2                	jmp    *%rdx
  4008e9:	0f 1f 80 00 00 00 00 	nopl   0x0(%rax)

00000000004008f0 <__do_global_dtors_aux>:
  4008f0:	80 3d 39 18 20 00 00 	cmpb   $0x0,0x201839(%rip)        # 602130 <completed.6355>
  4008f7:	75 11                	jne    40090a <__do_global_dtors_aux+0x1a>
  4008f9:	55                   	push   %rbp
  4008fa:	48 89 e5             	mov    %rsp,%rbp
  4008fd:	e8 7e ff ff ff       	call   400880 <deregister_tm_clones>
  400902:	5d                   	pop    %rbp
  400903:	c6 05 26 18 20 00 01 	movb   $0x1,0x201826(%rip)        # 602130 <completed.6355>
  40090a:	f3 c3                	repz ret
  40090c:	0f 1f 40 00          	nopl   0x0(%rax)

0000000000400910 <frame_dummy>:
  400910:	48 83 3d 08 15 20 00 	cmpq   $0x0,0x201508(%rip)        # 601e20 <__JCR_END__>
  400917:	00 
  400918:	74 1e                	je     400938 <frame_dummy+0x28>
  40091a:	b8 00 00 00 00       	mov    $0x0,%eax
  40091f:	48 85 c0             	test   %rax,%rax
  400922:	74 14                	je     400938 <frame_dummy+0x28>
  400924:	55                   	push   %rbp
  400925:	bf 20 1e 60 00       	mov    $0x601e20,%edi
  40092a:	48 89 e5             	mov    %rsp,%rbp
  40092d:	ff d0                	call   *%rax
  40092f:	5d                   	pop    %rbp
  400930:	e9 7b ff ff ff       	jmp    4008b0 <register_tm_clones>
  400935:	0f 1f 00             	nopl   (%rax)
  400938:	e9 73 ff ff ff       	jmp    4008b0 <register_tm_clones>

000000000040093d <_r_func_>:
  40093d:	55                   	push   %rbp
  40093e:	48 89 e5             	mov    %rsp,%rbp
  400941:	90                   	nop
  400942:	90                   	nop
  400943:	90                   	nop
  400944:	90                   	nop
  400945:	90                   	nop
  400946:	90                   	nop
  400947:	90                   	nop
  400948:	90                   	nop
  400949:	90                   	nop
  40094a:	90                   	nop
  40094b:	90                   	nop
  40094c:	90                   	nop
  40094d:	90                   	nop
  40094e:	90                   	nop
  40094f:	90                   	nop
  400950:	90                   	nop
  400951:	90                   	nop
  400952:	90                   	nop
  400953:	90                   	nop
  400954:	90                   	nop
  400955:	90                   	nop
  400956:	90                   	nop
  400957:	90                   	nop
  400958:	5d                   	pop    %rbp
  400959:	c3                   	ret

000000000040095a <target>:
  40095a:	55                   	push   %rbp
  40095b:	48 89 e5             	mov    %rsp,%rbp
  40095e:	48 83 ec 20          	sub    $0x20,%rsp
  400962:	48 89 7d e8          	mov    %rdi,-0x18(%rbp)
  400966:	c7 45 f0 6b 62 76 68 	movl   $0x6876626b,-0x10(%rbp)
  40096d:	66 c7 45 f4 6b 64    	movw   $0x646b,-0xc(%rbp)
  400973:	c6 45 f6 00          	movb   $0x0,-0xa(%rbp)
  400977:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%rbp)
  40097e:	c7 45 f8 00 00 00 00 	movl   $0x0,-0x8(%rbp)
  400985:	eb 34                	jmp    4009bb <target+0x61>
  400987:	8b 45 f8             	mov    -0x8(%rbp),%eax
  40098a:	48 63 d0             	movslq %eax,%rdx
  40098d:	48 8b 45 e8          	mov    -0x18(%rbp),%rax
  400991:	48 01 d0             	add    %rdx,%rax
  400994:	0f b6 00             	movzbl (%rax),%eax
  400997:	0f be c0             	movsbl %al,%eax
  40099a:	8d 50 0c             	lea    0xc(%rax),%edx
  40099d:	8b 45 f8             	mov    -0x8(%rbp),%eax
  4009a0:	48 98                	cltq
  4009a2:	0f b6 44 05 f0       	movzbl -0x10(%rbp,%rax,1),%eax
  4009a7:	0f be c0             	movsbl %al,%eax
  4009aa:	39 c2                	cmp    %eax,%edx
  4009ac:	74 09                	je     4009b7 <target+0x5d>
  4009ae:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%rbp)
  4009b5:	eb 0a                	jmp    4009c1 <target+0x67>
  4009b7:	83 45 f8 01          	addl   $0x1,-0x8(%rbp)
  4009bb:	83 7d f8 05          	cmpl   $0x5,-0x8(%rbp)
  4009bf:	7e c6                	jle    400987 <target+0x2d>
  4009c1:	83 7d fc 00          	cmpl   $0x0,-0x4(%rbp)
  4009c5:	74 1c                	je     4009e3 <target+0x89>
  4009c7:	48 8b 55 e8          	mov    -0x18(%rbp),%rdx
  4009cb:	48 8b 45 e8          	mov    -0x18(%rbp),%rax
  4009cf:	48 89 c6             	mov    %rax,%rsi
  4009d2:	bf d8 0f 40 00       	mov    $0x400fd8,%edi
  4009d7:	b8 00 00 00 00       	mov    $0x0,%eax
  4009dc:	e8 df fd ff ff       	call   4007c0 <printf@plt>
  4009e1:	eb 0a                	jmp    4009ed <target+0x93>
  4009e3:	bf 18 10 40 00       	mov    $0x401018,%edi
  4009e8:	e8 73 fd ff ff       	call   400760 <puts@plt>
  4009ed:	c9                   	leave
  4009ee:	c3                   	ret

00000000004009ef <do_phase>:
  4009ef:	55                   	push   %rbp
  4009f0:	48 89 e5             	mov    %rsp,%rbp
  4009f3:	48 81 ec 50 02 00 00 	sub    $0x250,%rsp
  4009fa:	48 89 bd b8 fd ff ff 	mov    %rdi,-0x248(%rbp)
  400a01:	48 8d 95 c0 fd ff ff 	lea    -0x240(%rbp),%rdx
  400a08:	48 8b 85 b8 fd ff ff 	mov    -0x248(%rbp),%rax
  400a0f:	48 89 d6             	mov    %rdx,%rsi
  400a12:	48 89 c7             	mov    %rax,%rdi
  400a15:	e8 9b 00 00 00       	call   400ab5 <digit2hex>
  400a1a:	c9                   	leave
  400a1b:	c3                   	ret

0000000000400a1c <phase>:
  400a1c:	55                   	push   %rbp
  400a1d:	48 89 e5             	mov    %rsp,%rbp
  400a20:	48 83 ec 20          	sub    $0x20,%rsp
  400a24:	48 89 7d e8          	mov    %rdi,-0x18(%rbp)
  400a28:	48 89 e0             	mov    %rsp,%rax
  400a2b:	48 89 05 06 17 20 00 	mov    %rax,0x201706(%rip)        # 602138 <init_stack_top.2871>
  400a32:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%rbp)
  400a39:	eb 48                	jmp    400a83 <phase+0x67>
  400a3b:	48 8b 05 f6 16 20 00 	mov    0x2016f6(%rip),%rax        # 602138 <init_stack_top.2871>
  400a42:	48 89 c4             	mov    %rax,%rsp
  400a45:	e8 f6 fd ff ff       	call   400840 <rand@plt>
  400a4a:	48 98                	cltq
  400a4c:	0f b6 c0             	movzbl %al,%eax
  400a4f:	48 8d 50 0f          	lea    0xf(%rax),%rdx
  400a53:	b8 10 00 00 00       	mov    $0x10,%eax
  400a58:	48 83 e8 01          	sub    $0x1,%rax
  400a5c:	48 01 d0             	add    %rdx,%rax
  400a5f:	b9 10 00 00 00       	mov    $0x10,%ecx
  400a64:	ba 00 00 00 00       	mov    $0x0,%edx
  400a69:	48 f7 f1             	div    %rcx
  400a6c:	48 6b c0 10          	imul   $0x10,%rax,%rax
  400a70:	48 29 c4             	sub    %rax,%rsp
  400a73:	48 8b 45 e8          	mov    -0x18(%rbp),%rax
  400a77:	48 89 c7             	mov    %rax,%rdi
  400a7a:	e8 70 ff ff ff       	call   4009ef <do_phase>
  400a7f:	83 45 fc 01          	addl   $0x1,-0x4(%rbp)
  400a83:	83 7d fc 05          	cmpl   $0x5,-0x4(%rbp)
  400a87:	7e b2                	jle    400a3b <phase+0x1f>
  400a89:	48 8b 05 a8 16 20 00 	mov    0x2016a8(%rip),%rax        # 602138 <init_stack_top.2871>
  400a90:	48 89 c4             	mov    %rax,%rsp
  400a93:	83 7d fc 06          	cmpl   $0x6,-0x4(%rbp)
  400a97:	0f 94 c0             	sete   %al
  400a9a:	0f b6 c0             	movzbl %al,%eax
  400a9d:	89 c6                	mov    %eax,%esi
  400a9f:	bf 40 10 40 00       	mov    $0x401040,%edi
  400aa4:	b8 00 00 00 00       	mov    $0x0,%eax
  400aa9:	e8 12 fd ff ff       	call   4007c0 <printf@plt>
  400aae:	b8 01 00 00 00       	mov    $0x1,%eax
  400ab3:	c9                   	leave
  400ab4:	c3                   	ret

0000000000400ab5 <digit2hex>:
  400ab5:	55                   	push   %rbp
  400ab6:	48 89 e5             	mov    %rsp,%rbp
  400ab9:	48 89 7d e8          	mov    %rdi,-0x18(%rbp)
  400abd:	48 89 75 e0          	mov    %rsi,-0x20(%rbp)
  400ac1:	48 c7 45 f8 00 00 00 	movq   $0x0,-0x8(%rbp)
  400ac8:	00 
  400ac9:	c7 45 f4 00 00 00 00 	movl   $0x0,-0xc(%rbp)
  400ad0:	e9 a5 00 00 00       	jmp    400b7a <digit2hex+0xc5>
  400ad5:	48 8b 45 e8          	mov    -0x18(%rbp),%rax
  400ad9:	0f b6 00             	movzbl (%rax),%eax
  400adc:	3c 23                	cmp    $0x23,%al
  400ade:	75 12                	jne    400af2 <digit2hex+0x3d>
  400ae0:	83 7d f4 00          	cmpl   $0x0,-0xc(%rbp)
  400ae4:	0f 94 c0             	sete   %al
  400ae7:	0f b6 c0             	movzbl %al,%eax
  400aea:	89 45 f4             	mov    %eax,-0xc(%rbp)
  400aed:	e9 83 00 00 00       	jmp    400b75 <digit2hex+0xc0>
  400af2:	83 7d f4 00          	cmpl   $0x0,-0xc(%rbp)
  400af6:	74 02                	je     400afa <digit2hex+0x45>
  400af8:	eb 7b                	jmp    400b75 <digit2hex+0xc0>
  400afa:	48 8b 45 e8          	mov    -0x18(%rbp),%rax
  400afe:	0f b6 00             	movzbl (%rax),%eax
  400b01:	0f be c0             	movsbl %al,%eax
  400b04:	83 e0 7f             	and    $0x7f,%eax
  400b07:	48 98                	cltq
  400b09:	0f b6 80 60 10 40 00 	movzbl 0x401060(%rax),%eax
  400b10:	3c ff                	cmp    $0xff,%al
  400b12:	75 02                	jne    400b16 <digit2hex+0x61>
  400b14:	eb 5f                	jmp    400b75 <digit2hex+0xc0>
  400b16:	48 83 7d f8 00       	cmpq   $0x0,-0x8(%rbp)
  400b1b:	74 50                	je     400b6d <digit2hex+0xb8>
  400b1d:	48 8b 45 f8          	mov    -0x8(%rbp),%rax
  400b21:	0f b6 00             	movzbl (%rax),%eax
  400b24:	0f be c0             	movsbl %al,%eax
  400b27:	83 e0 7f             	and    $0x7f,%eax
  400b2a:	48 98                	cltq
  400b2c:	0f b6 80 60 10 40 00 	movzbl 0x401060(%rax),%eax
  400b33:	0f b6 c0             	movzbl %al,%eax
  400b36:	c1 e0 04             	shl    $0x4,%eax
  400b39:	89 c2                	mov    %eax,%edx
  400b3b:	48 8b 45 e8          	mov    -0x18(%rbp),%rax
  400b3f:	0f b6 00             	movzbl (%rax),%eax
  400b42:	0f be c0             	movsbl %al,%eax
  400b45:	83 e0 7f             	and    $0x7f,%eax
  400b48:	48 98                	cltq
  400b4a:	0f b6 80 60 10 40 00 	movzbl 0x401060(%rax),%eax
  400b51:	83 e0 0f             	and    $0xf,%eax
  400b54:	09 d0                	or     %edx,%eax
  400b56:	89 c2                	mov    %eax,%edx
  400b58:	48 8b 45 e0          	mov    -0x20(%rbp),%rax
  400b5c:	88 10                	mov    %dl,(%rax)
  400b5e:	48 83 45 e0 01       	addq   $0x1,-0x20(%rbp)
  400b63:	48 c7 45 f8 00 00 00 	movq   $0x0,-0x8(%rbp)
  400b6a:	00 
  400b6b:	eb 08                	jmp    400b75 <digit2hex+0xc0>
  400b6d:	48 8b 45 e8          	mov    -0x18(%rbp),%rax
  400b71:	48 89 45 f8          	mov    %rax,-0x8(%rbp)
  400b75:	48 83 45 e8 01       	addq   $0x1,-0x18(%rbp)
  400b7a:	48 8b 45 e8          	mov    -0x18(%rbp),%rax
  400b7e:	0f b6 00             	movzbl (%rax),%eax
  400b81:	84 c0                	test   %al,%al
  400b83:	0f 85 4c ff ff ff    	jne    400ad5 <digit2hex+0x20>
  400b89:	48 8b 45 e0          	mov    -0x20(%rbp),%rax
  400b8d:	5d                   	pop    %rbp
  400b8e:	c3                   	ret

0000000000400b8f <getrid>:
  400b8f:	55                   	push   %rbp
  400b90:	48 89 e5             	mov    %rsp,%rbp
  400b93:	8b 05 83 15 20 00    	mov    0x201583(%rip),%eax        # 60211c <run_id.3623>
  400b99:	85 c0                	test   %eax,%eax
  400b9b:	79 17                	jns    400bb4 <getrid+0x25>
  400b9d:	e8 ee fb ff ff       	call   400790 <getpid@plt>
  400ba2:	89 c7                	mov    %eax,%edi
  400ba4:	e8 47 fc ff ff       	call   4007f0 <srand@plt>
  400ba9:	e8 92 fc ff ff       	call   400840 <rand@plt>
  400bae:	89 05 68 15 20 00    	mov    %eax,0x201568(%rip)        # 60211c <run_id.3623>
  400bb4:	8b 05 62 15 20 00    	mov    0x201562(%rip),%eax        # 60211c <run_id.3623>
  400bba:	5d                   	pop    %rbp
  400bbb:	c3                   	ret

0000000000400bbc <fillregion>:
  400bbc:	55                   	push   %rbp
  400bbd:	48 89 e5             	mov    %rsp,%rbp
  400bc0:	48 89 7d e8          	mov    %rdi,-0x18(%rbp)
  400bc4:	89 75 e4             	mov    %esi,-0x1c(%rbp)
  400bc7:	89 55 e0             	mov    %edx,-0x20(%rbp)
  400bca:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%rbp)
  400bd1:	eb 1d                	jmp    400bf0 <fillregion+0x34>
  400bd3:	8b 45 fc             	mov    -0x4(%rbp),%eax
  400bd6:	48 98                	cltq
  400bd8:	48 8d 14 85 00 00 00 	lea    0x0(,%rax,4),%rdx
  400bdf:	00 
  400be0:	48 8b 45 e8          	mov    -0x18(%rbp),%rax
  400be4:	48 01 c2             	add    %rax,%rdx
  400be7:	8b 45 e0             	mov    -0x20(%rbp),%eax
  400bea:	89 02                	mov    %eax,(%rdx)
  400bec:	83 45 fc 01          	addl   $0x1,-0x4(%rbp)
  400bf0:	8b 45 fc             	mov    -0x4(%rbp),%eax
  400bf3:	3b 45 e4             	cmp    -0x1c(%rbp),%eax
  400bf6:	7c db                	jl     400bd3 <fillregion+0x17>
  400bf8:	5d                   	pop    %rbp
  400bf9:	c3                   	ret

0000000000400bfa <checkregion>:
  400bfa:	55                   	push   %rbp
  400bfb:	48 89 e5             	mov    %rsp,%rbp
  400bfe:	48 89 7d e8          	mov    %rdi,-0x18(%rbp)
  400c02:	89 75 e4             	mov    %esi,-0x1c(%rbp)
  400c05:	89 55 e0             	mov    %edx,-0x20(%rbp)
  400c08:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%rbp)
  400c0f:	eb 26                	jmp    400c37 <checkregion+0x3d>
  400c11:	8b 45 fc             	mov    -0x4(%rbp),%eax
  400c14:	48 98                	cltq
  400c16:	48 8d 14 85 00 00 00 	lea    0x0(,%rax,4),%rdx
  400c1d:	00 
  400c1e:	48 8b 45 e8          	mov    -0x18(%rbp),%rax
  400c22:	48 01 d0             	add    %rdx,%rax
  400c25:	8b 00                	mov    (%rax),%eax
  400c27:	3b 45 e0             	cmp    -0x20(%rbp),%eax
  400c2a:	74 07                	je     400c33 <checkregion+0x39>
  400c2c:	b8 00 00 00 00       	mov    $0x0,%eax
  400c31:	eb 11                	jmp    400c44 <checkregion+0x4a>
  400c33:	83 45 fc 01          	addl   $0x1,-0x4(%rbp)
  400c37:	8b 45 fc             	mov    -0x4(%rbp),%eax
  400c3a:	3b 45 e4             	cmp    -0x1c(%rbp),%eax
  400c3d:	7c d2                	jl     400c11 <checkregion+0x17>
  400c3f:	b8 01 00 00 00       	mov    $0x1,%eax
  400c44:	5d                   	pop    %rbp
  400c45:	c3                   	ret

0000000000400c46 <exec_phase>:
  400c46:	55                   	push   %rbp
  400c47:	48 89 e5             	mov    %rsp,%rbp
  400c4a:	53                   	push   %rbx
  400c4b:	48 83 ec 58          	sub    $0x58,%rsp
  400c4f:	48 89 7d a8          	mov    %rdi,-0x58(%rbp)
  400c53:	48 8d 45 b0          	lea    -0x50(%rbp),%rax
  400c57:	25 f0 3f 00 00       	and    $0x3ff0,%eax
  400c5c:	48 89 05 fd 34 20 00 	mov    %rax,0x2034fd(%rip)        # 604160 <alloca_size.3650>
  400c63:	48 8b 05 f6 34 20 00 	mov    0x2034f6(%rip),%rax        # 604160 <alloca_size.3650>
  400c6a:	48 8d 50 0f          	lea    0xf(%rax),%rdx
  400c6e:	b8 10 00 00 00       	mov    $0x10,%eax
  400c73:	48 83 e8 01          	sub    $0x1,%rax
  400c77:	48 01 d0             	add    %rdx,%rax
  400c7a:	bb 10 00 00 00       	mov    $0x10,%ebx
  400c7f:	ba 00 00 00 00       	mov    $0x0,%edx
  400c84:	48 f7 f3             	div    %rbx
  400c87:	48 6b c0 10          	imul   $0x10,%rax,%rax
  400c8b:	48 29 c4             	sub    %rax,%rsp
  400c8e:	48 89 e0             	mov    %rsp,%rax
  400c91:	48 83 c0 0f          	add    $0xf,%rax
  400c95:	48 c1 e8 04          	shr    $0x4,%rax
  400c99:	48 c1 e0 04          	shl    $0x4,%rax
  400c9d:	48 89 05 c4 34 20 00 	mov    %rax,0x2034c4(%rip)        # 604168 <alloca_region.3649>
  400ca4:	b8 00 00 00 00       	mov    $0x0,%eax
  400ca9:	e8 e1 fe ff ff       	call   400b8f <getrid>
  400cae:	89 c2                	mov    %eax,%edx
  400cb0:	48 8b 05 a9 34 20 00 	mov    0x2034a9(%rip),%rax        # 604160 <alloca_size.3650>
  400cb7:	48 c1 e8 02          	shr    $0x2,%rax
  400cbb:	89 c1                	mov    %eax,%ecx
  400cbd:	48 8b 05 a4 34 20 00 	mov    0x2034a4(%rip),%rax        # 604168 <alloca_region.3649>
  400cc4:	89 ce                	mov    %ecx,%esi
  400cc6:	48 89 c7             	mov    %rax,%rdi
  400cc9:	e8 ee fe ff ff       	call   400bbc <fillregion>
  400cce:	48 8b 45 a8          	mov    -0x58(%rbp),%rax
  400cd2:	48 89 c7             	mov    %rax,%rdi
  400cd5:	e8 42 fd ff ff       	call   400a1c <phase>
  400cda:	b8 00 00 00 00       	mov    $0x0,%eax
  400cdf:	e8 ab fe ff ff       	call   400b8f <getrid>
  400ce4:	89 c2                	mov    %eax,%edx
  400ce6:	48 8b 05 73 34 20 00 	mov    0x203473(%rip),%rax        # 604160 <alloca_size.3650>
  400ced:	48 c1 e8 02          	shr    $0x2,%rax
  400cf1:	89 c1                	mov    %eax,%ecx
  400cf3:	48 8b 05 6e 34 20 00 	mov    0x20346e(%rip),%rax        # 604168 <alloca_region.3649>
  400cfa:	89 ce                	mov    %ecx,%esi
  400cfc:	48 89 c7             	mov    %rax,%rdi
  400cff:	e8 f6 fe ff ff       	call   400bfa <checkregion>
  400d04:	85 c0                	test   %eax,%eax
  400d06:	75 0a                	jne    400d12 <exec_phase+0xcc>
  400d08:	bf e0 10 40 00       	mov    $0x4010e0,%edi
  400d0d:	e8 4e fa ff ff       	call   400760 <puts@plt>
  400d12:	48 8b 5d f8          	mov    -0x8(%rbp),%rbx
  400d16:	c9                   	leave
  400d17:	c3                   	ret

0000000000400d18 <main>:
  400d18:	55                   	push   %rbp
  400d19:	48 89 e5             	mov    %rsp,%rbp
  400d1c:	48 83 ec 20          	sub    $0x20,%rsp
  400d20:	89 7d ec             	mov    %edi,-0x14(%rbp)
  400d23:	48 89 75 e0          	mov    %rsi,-0x20(%rbp)
  400d27:	b8 00 00 00 00       	mov    $0x0,%eax
  400d2c:	e8 5e fe ff ff       	call   400b8f <getrid>
  400d31:	48 c7 45 f8 00 00 00 	movq   $0x0,-0x8(%rbp)
  400d38:	00 
  400d39:	83 7d ec 01          	cmpl   $0x1,-0x14(%rbp)
  400d3d:	75 0d                	jne    400d4c <main+0x34>
  400d3f:	48 8b 05 da 13 20 00 	mov    0x2013da(%rip),%rax        # 602120 <stdin@GLIBC_2.2.5>
  400d46:	48 89 45 f8          	mov    %rax,-0x8(%rbp)
  400d4a:	eb 73                	jmp    400dbf <main+0xa7>
  400d4c:	83 7d ec 02          	cmpl   $0x2,-0x14(%rbp)
  400d50:	75 4a                	jne    400d9c <main+0x84>
  400d52:	48 8b 45 e0          	mov    -0x20(%rbp),%rax
  400d56:	48 83 c0 08          	add    $0x8,%rax
  400d5a:	48 8b 00             	mov    (%rax),%rax
  400d5d:	be 02 11 40 00       	mov    $0x401102,%esi
  400d62:	48 89 c7             	mov    %rax,%rdi
  400d65:	e8 b6 fa ff ff       	call   400820 <fopen@plt>
  400d6a:	48 89 45 f8          	mov    %rax,-0x8(%rbp)
  400d6e:	48 83 7d f8 00       	cmpq   $0x0,-0x8(%rbp)
  400d73:	75 4a                	jne    400dbf <main+0xa7>
  400d75:	48 8b 45 e0          	mov    -0x20(%rbp),%rax
  400d79:	48 83 c0 08          	add    $0x8,%rax
  400d7d:	48 8b 00             	mov    (%rax),%rax
  400d80:	48 89 c6             	mov    %rax,%rsi
  400d83:	bf 08 11 40 00       	mov    $0x401108,%edi
  400d88:	b8 00 00 00 00       	mov    $0x0,%eax
  400d8d:	e8 2e fa ff ff       	call   4007c0 <printf@plt>
  400d92:	b8 ff ff ff ff       	mov    $0xffffffff,%eax
  400d97:	e9 87 01 00 00       	jmp    400f23 <main+0x20b>
  400d9c:	48 8b 45 e0          	mov    -0x20(%rbp),%rax
  400da0:	48 8b 00             	mov    (%rax),%rax
  400da3:	48 89 c6             	mov    %rax,%rsi
  400da6:	bf 2c 11 40 00       	mov    $0x40112c,%edi
  400dab:	b8 00 00 00 00       	mov    $0x0,%eax
  400db0:	e8 0b fa ff ff       	call   4007c0 <printf@plt>
  400db5:	b8 ff ff ff ff       	mov    $0xffffffff,%eax
  400dba:	e9 64 01 00 00       	jmp    400f23 <main+0x20b>
  400dbf:	bf 48 11 40 00       	mov    $0x401148,%edi
  400dc4:	e8 97 f9 ff ff       	call   400760 <puts@plt>
  400dc9:	bf 78 11 40 00       	mov    $0x401178,%edi
  400dce:	e8 8d f9 ff ff       	call   400760 <puts@plt>
  400dd3:	ba 00 20 00 00       	mov    $0x2000,%edx
  400dd8:	be 00 00 00 00       	mov    $0x0,%esi
  400ddd:	bf 60 21 60 00       	mov    $0x602160,%edi
  400de2:	e8 e9 f9 ff ff       	call   4007d0 <memset@plt>
  400de7:	48 8b 45 f8          	mov    -0x8(%rbp),%rax
  400deb:	48 89 c1             	mov    %rax,%rcx
  400dee:	ba ff 1f 00 00       	mov    $0x1fff,%edx
  400df3:	be 01 00 00 00       	mov    $0x1,%esi
  400df8:	bf 60 21 60 00       	mov    $0x602160,%edi
  400dfd:	e8 7e f9 ff ff       	call   400780 <fread@plt>
  400e02:	48 89 45 f0          	mov    %rax,-0x10(%rbp)
  400e06:	48 8b 45 f8          	mov    -0x8(%rbp),%rax
  400e0a:	48 89 c7             	mov    %rax,%rdi
  400e0d:	e8 5e f9 ff ff       	call   400770 <ferror@plt>
  400e12:	85 c0                	test   %eax,%eax
  400e14:	74 0f                	je     400e25 <main+0x10d>
  400e16:	bf a0 11 40 00       	mov    $0x4011a0,%edi
  400e1b:	e8 40 f9 ff ff       	call   400760 <puts@plt>
  400e20:	e9 e0 00 00 00       	jmp    400f05 <main+0x1ed>
  400e25:	48 8b 45 f0          	mov    -0x10(%rbp),%rax
  400e29:	48 05 60 21 60 00    	add    $0x602160,%rax
  400e2f:	c6 00 00             	movb   $0x0,(%rax)
  400e32:	41 b9 00 00 00 00    	mov    $0x0,%r9d
  400e38:	41 b8 00 00 00 00    	mov    $0x0,%r8d
  400e3e:	b9 32 01 00 00       	mov    $0x132,%ecx
  400e43:	ba 07 00 00 00       	mov    $0x7,%edx
  400e48:	be 00 40 00 00       	mov    $0x4000,%esi
  400e4d:	bf 00 00 00 04       	mov    $0x4000000,%edi
  400e52:	e8 59 f9 ff ff       	call   4007b0 <mmap@plt>
  400e57:	48 89 05 e2 12 20 00 	mov    %rax,0x2012e2(%rip)        # 602140 <buffer_stack_area>
  400e5e:	48 8b 05 db 12 20 00 	mov    0x2012db(%rip),%rax        # 602140 <buffer_stack_area>
  400e65:	48 3d 00 00 00 04    	cmp    $0x4000000,%rax
  400e6b:	74 28                	je     400e95 <main+0x17d>
  400e6d:	48 8b 05 b4 12 20 00 	mov    0x2012b4(%rip),%rax        # 602128 <stderr@GLIBC_2.2.5>
  400e74:	48 89 c1             	mov    %rax,%rcx
  400e77:	ba 53 00 00 00       	mov    $0x53,%edx
  400e7c:	be 01 00 00 00       	mov    $0x1,%esi
  400e81:	bf c8 11 40 00       	mov    $0x4011c8,%edi
  400e86:	e8 a5 f9 ff ff       	call   400830 <fwrite@plt>
  400e8b:	b8 ff ff ff ff       	mov    $0xffffffff,%eax
  400e90:	e9 8e 00 00 00       	jmp    400f23 <main+0x20b>
  400e95:	48 8b 05 a4 12 20 00 	mov    0x2012a4(%rip),%rax        # 602140 <buffer_stack_area>
  400e9c:	48 05 f8 3f 00 00    	add    $0x3ff8,%rax
  400ea2:	48 89 05 9f 12 20 00 	mov    %rax,0x20129f(%rip)        # 602148 <buffer_stack_top>
  400ea9:	48 8b 15 98 12 20 00 	mov    0x201298(%rip),%rdx        # 602148 <buffer_stack_top>
  400eb0:	48 89 e0             	mov    %rsp,%rax
  400eb3:	48 89 d4             	mov    %rdx,%rsp
  400eb6:	48 83 e4 f0          	and    $0xfffffffffffffff0,%rsp
  400eba:	48 89 c2             	mov    %rax,%rdx
  400ebd:	48 89 15 8c 12 20 00 	mov    %rdx,0x20128c(%rip)        # 602150 <main_stack_top>
  400ec4:	bf 60 21 60 00       	mov    $0x602160,%edi
  400ec9:	e8 78 fd ff ff       	call   400c46 <exec_phase>
  400ece:	48 8b 05 7b 12 20 00 	mov    0x20127b(%rip),%rax        # 602150 <main_stack_top>
  400ed5:	48 89 c4             	mov    %rax,%rsp
  400ed8:	48 8b 05 61 12 20 00 	mov    0x201261(%rip),%rax        # 602140 <buffer_stack_area>
  400edf:	be 00 40 00 00       	mov    $0x4000,%esi
  400ee4:	48 89 c7             	mov    %rax,%rdi
  400ee7:	e8 24 f9 ff ff       	call   400810 <munmap@plt>
  400eec:	48 c7 05 51 12 20 00 	movq   $0x0,0x201251(%rip)        # 602148 <buffer_stack_top>
  400ef3:	00 00 00 00 
  400ef7:	48 8b 05 4a 12 20 00 	mov    0x20124a(%rip),%rax        # 602148 <buffer_stack_top>
  400efe:	48 89 05 3b 12 20 00 	mov    %rax,0x20123b(%rip)        # 602140 <buffer_stack_area>
  400f05:	48 8b 05 14 12 20 00 	mov    0x201214(%rip),%rax        # 602120 <stdin@GLIBC_2.2.5>
  400f0c:	48 39 45 f8          	cmp    %rax,-0x8(%rbp)
  400f10:	74 0c                	je     400f1e <main+0x206>
  400f12:	48 8b 45 f8          	mov    -0x8(%rbp),%rax
  400f16:	48 89 c7             	mov    %rax,%rdi
  400f19:	e8 82 f8 ff ff       	call   4007a0 <fclose@plt>
  400f1e:	b8 00 00 00 00       	mov    $0x0,%eax
  400f23:	c9                   	leave
  400f24:	c3                   	ret
  400f25:	66 2e 0f 1f 84 00 00 	cs nopw 0x0(%rax,%rax,1)
  400f2c:	00 00 00 
  400f2f:	90                   	nop

0000000000400f30 <__libc_csu_init>:
  400f30:	41 57                	push   %r15
  400f32:	41 89 ff             	mov    %edi,%r15d
  400f35:	41 56                	push   %r14
  400f37:	49 89 f6             	mov    %rsi,%r14
  400f3a:	41 55                	push   %r13
  400f3c:	49 89 d5             	mov    %rdx,%r13
  400f3f:	41 54                	push   %r12
  400f41:	4c 8d 25 c8 0e 20 00 	lea    0x200ec8(%rip),%r12        # 601e10 <__frame_dummy_init_array_entry>
  400f48:	55                   	push   %rbp
  400f49:	48 8d 2d c8 0e 20 00 	lea    0x200ec8(%rip),%rbp        # 601e18 <__do_global_dtors_aux_fini_array_entry>
  400f50:	53                   	push   %rbx
  400f51:	4c 29 e5             	sub    %r12,%rbp
  400f54:	31 db                	xor    %ebx,%ebx
  400f56:	48 c1 fd 03          	sar    $0x3,%rbp
  400f5a:	48 83 ec 08          	sub    $0x8,%rsp
  400f5e:	e8 cd f7 ff ff       	call   400730 <_init>
  400f63:	48 85 ed             	test   %rbp,%rbp
  400f66:	74 1e                	je     400f86 <__libc_csu_init+0x56>
  400f68:	0f 1f 84 00 00 00 00 	nopl   0x0(%rax,%rax,1)
  400f6f:	00 
  400f70:	4c 89 ea             	mov    %r13,%rdx
  400f73:	4c 89 f6             	mov    %r14,%rsi
  400f76:	44 89 ff             	mov    %r15d,%edi
  400f79:	41 ff 14 dc          	call   *(%r12,%rbx,8)
  400f7d:	48 83 c3 01          	add    $0x1,%rbx
  400f81:	48 39 eb             	cmp    %rbp,%rbx
  400f84:	75 ea                	jne    400f70 <__libc_csu_init+0x40>
  400f86:	48 83 c4 08          	add    $0x8,%rsp
  400f8a:	5b                   	pop    %rbx
  400f8b:	5d                   	pop    %rbp
  400f8c:	41 5c                	pop    %r12
  400f8e:	41 5d                	pop    %r13
  400f90:	41 5e                	pop    %r14
  400f92:	41 5f                	pop    %r15
  400f94:	c3                   	ret
  400f95:	90                   	nop
  400f96:	66 2e 0f 1f 84 00 00 	cs nopw 0x0(%rax,%rax,1)
  400f9d:	00 00 00 

0000000000400fa0 <__libc_csu_fini>:
  400fa0:	f3 c3                	repz ret

Disassembly of section .fini:

0000000000400fa4 <_fini>:
  400fa4:	48 83 ec 08          	sub    $0x8,%rsp
  400fa8:	48 83 c4 08          	add    $0x8,%rsp
  400fac:	c3                   	ret
